package com.hk.commons.multischema;

import java.lang.annotation.*;

/**
 * 可以在实体类上加，也可以在方法上加，也可以在Repository的接口类上加，
 * 但如果在 Repository的接口类上加，父类定义的方法会拿不到这个注解?，所以，建议先在实体类上加。
 * <p>
 *  R2dbcMultiDatasourceAdvice
 *
 * @author Kevin
 * @date 2023-05-27 18:23
 */
@Documented
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface DataSourceType {

    String PRINCIPAL_TENANT_ID = "${principal.tenantId}";

    String PRINCIPAL_ACCOUNT = "${principal.account}";

    String REQUEST_URI = "${request.uri}";

    /**
     * SPEL ??
     */
    String value() default PRINCIPAL_TENANT_ID;
}
